-- *****************************************************************
-- CISCO-ENCASE-MIB.my: CISCO Network Management ENCASE MIB
--
-- August 1999  Vinay Anand, Steve Chen
--
-- Copyright (c) 1999 by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
-- $Endlog$


CISCO-ENCASE-MIB DEFINITIONS ::= BEGIN


IMPORTS
    MODULE-IDENTITY, 
    NOTIFICATION-TYPE,   
    OBJECT-TYPE,
    Integer32
            FROM SNMPv2-SMI
    MODULE-COMPLIANCE, 
    NOTIFICATION-GROUP,
    OBJECT-GROUP   
            FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,
    TruthValue,
    DateAndTime
            FROM SNMPv2-TC
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Unsigned32
            FROM CISCO-TC
    EncaseAppName 
            FROM CISCO-ENCASE-APP-NAME-MIB;


ciscoEncaseMIB MODULE-IDENTITY
    LAST-UPDATED    "9908310000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
                    "Cisco Systems
                     Customer Service

             Postal: 170 W. Tasman Drive
                     San Jose, CA 95134
                     USA

             Tel:    +1 800 553-NETS

             E-mail: cs-crm@cisco.com"
    DESCRIPTION
        "This MIB module defines the managed objects that convey the 
        change event information associated with ENCASE (Enterprise 
        Network Management Change Audit Service).  ENCASE provides 
        network management applications a common medium for reporting 
        and storing change information pertaining to Cisco devices.  
        Examples of network management applications include the 
        Software Image Manager, and Configuration Manager.  It 
        allows applications to link generic change information with 
        other application and device specific information.  

        A change event in this context is any activity performed by 
        an application that results in a non-transient change to the 
        previously known state of the device.  For example, the 
        following activities constitute changes: 
        1. Software Image Manager uploads a new IOS image to a device.

        2. Configuration Manager modifies a config file on a device or 
           determines that the config file has been modified since its 
           last scan of the device.

        3. Inventory Manager recognizes the presence of a new interface
           card on a device.

        A notification is sent out for every change message ENCASE 
        receives from its client applications.  An example of the 
        sequence of events that lead to the generation of a 
        notification by ENCASE:

        1. An administrator uses the Configuration Manager to edit the 
           config file of a Cisco device.

        2. Configuration Manager communicates to ENCASE all the details
           of this change to the device (e.g., name of the device, name 
           of the user who is performing the change, the type of 
           connection the user established with the device 
           (e.g., telnet), a short text string describing the change 
           and time of the change).

        3. ENCASE stores this change information in a persistent 
           data-store.

        4. ENCASE generates a notification with all the relevant 
           information.

        The information contained in the notification sent out by 
        ENCASE and stored in a persistent data-store is available 
        for retrieval in multiple formats (e.g., ASCII text and 
        graphical reports).  The information available in this 
        persistent data-store is also accessible via other means 
        (e.g., by way of the report generation feature of the ENCASE 
        application).  

        The intent of generating a notification for such information 
        is to enable users to receive change information without having
        to establish a direct connection to the system running ENCASE, 
        as this is resource and time intensive.

        Applications receiving this notification can track the
        generation of new messages by polling the encaseHistIndexLast
        variable.  In the event of one or more notifications getting 
        lost or being dropped, the receiver can poll the 
        encaseHistoryTable to retrieve the change information that was 
        lost."
    ::= { ciscoMgmt 143 }


ciscoEncaseMIBObjects   OBJECT IDENTIFIER ::= { ciscoEncaseMIB 1 }

-- Groups
encaseBasic       OBJECT IDENTIFIER ::= { ciscoEncaseMIBObjects 1 }
encaseHistory     OBJECT IDENTIFIER ::= { ciscoEncaseMIBObjects 2 }


-- Textual Conventions
EncaseConnMode ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "The type of connection used by the user when connecting to 
        the device.  'none' is used when no connection is involved
        in the ENCASE change event; 'periodicScan' refers to the 
        application Inventory Manager periodically scanning the 
        managed devices in the inventory for any changes; the 
        remainder of these values are self-explanatory."
    SYNTAX INTEGER {
              none(1),
              other(2),
              telnet(3),
              console(4),
              snmp(5),
              periodicScan(6)
           }


-- Basic ENCASE groups
encaseNotifiesEnabled OBJECT-TYPE 
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates whether the agent generates encaseChangeEvent 
        notifications when ENCASE receives a change message.
        Disabling notifications does not prevent change messages from 
        being added to the encaseHistoryTable."
    DEFVAL { false }
    ::= { encaseBasic 1 }


-- ENCASE Change Events History Table
encaseHistTableMaxLength OBJECT-TYPE 
    SYNTAX      Integer32 (0..500)
    UNITS       "entries"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The upper limit on the number of entries that the
        encaseHistoryTable may contain.  When the capacity of the 
        encaseHistoryTable has reached the value specified by this
        object, then the agent deletes the oldest entity in order
        to accommodate the new entry.  A value of '0' prevents any
        history from being retained."
    DEFVAL  { 1 }
    ::= { encaseHistory 1 }


encaseHistIndexLast OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of the encaseHistIndex object corresponding to
        the last entry in the table generated by an application.  If 
        the management client uses the notifications defined by this
        module, then it can poll this object to determine whether
        it has missed a notification sent by the application."
    ::= { encaseHistory 2 }


encaseHistoryTable OBJECT-TYPE 
    SYNTAX      SEQUENCE OF EncaseHistoryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of ENCASE events generated by a client application
        identified by encaseHistAppName."
    ::= { encaseHistory 3 }


encaseHistoryEntry OBJECT-TYPE 
    SYNTAX      EncaseHistoryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An ENCASE change event that was generated by an application."
    INDEX   { encaseHistIndex }
    ::= { encaseHistoryTable 1 }


EncaseHistoryEntry ::= SEQUENCE {
    encaseHistIndex              Unsigned32,
    encaseHistAppName            EncaseAppName,
    encaseHistConnectionMode     EncaseConnMode,
    encaseHistCreationTime       DateAndTime,
    encaseHistDeviceName         SnmpAdminString,
    encaseHistHostName           SnmpAdminString,
    encaseHistChangeMessage      SnmpAdminString,
    encaseHistUserName           SnmpAdminString
}


encaseHistIndex OBJECT-TYPE 
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An integer value uniquely identifying the entry in the table.
        The value of this object starts at '1' and monotonically 
        increases for each ENCASE event monitored by the agent.  If 
        the value of this object is '4294967295', the agent will reset 
        it to '1' upon monitoring the next ENCASE event."
::= { encaseHistoryEntry 1 }


encaseHistAppName OBJECT-TYPE 
    SYNTAX      EncaseAppName
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The network management application that caused this change
        or identified a change and generated this notification."
    ::= { encaseHistoryEntry 2 }


encaseHistConnectionMode OBJECT-TYPE 
    SYNTAX      EncaseConnMode     
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The method by which the user (identified by 
        encaseHistUserName) connects to the device to perform actions 
        resulting in the change.  In the event the application detects
        a change caused by the user and is not able to identify the 
        connection type, encaseHistConnMode is set to 'other'.  If the 
        application detects there is no connection involved in the 
        change, encaseHistConnMode is set to 'none'."
    ::= { encaseHistoryEntry 3 }


encaseHistCreationTime OBJECT-TYPE 
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time when this change message was generated by 
        the application identified by encaseHistAppName."
    ::= { encaseHistoryEntry 4 }


encaseHistDeviceName OBJECT-TYPE 
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the network device which is involved in a change
        detected by the application identified by encaseHistAppName."
    ::= { encaseHistoryEntry 5 }


encaseHistHostName OBJECT-TYPE 
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the host station where the Cisco network
        management application is running.  This is the application
        that reported the change.  Most often, it is also the
        application that initiated the change (e.g., Software Image 
        Manager uploads a new IOS image on a Cisco device and also 
        reports the change to ENCASE)."
    ::= { encaseHistoryEntry 6 }


encaseHistChangeMessage OBJECT-TYPE 
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A description of the change as communicated by the application
        identified by encaseHistAppName. If the text of the message
        exceeds 255 bytes, the message will be truncated to 254 bytes 
        and a '*' character will be appended - indicating that the 
        message has been truncated."
    ::= { encaseHistoryEntry 7 }


encaseHistUserName OBJECT-TYPE 
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the user who caused the change event to happen.  
        If the reporting application is unable to identify the 
        username, this object is not instantiated."
    ::= { encaseHistoryEntry 8 }


-- Notifications
ciscoEncaseMIBNotificationsPrefix OBJECT IDENTIFIER ::= 
        { ciscoEncaseMIB 2 }

ciscoEncaseMIBNotifications OBJECT IDENTIFIER ::= 
        { ciscoEncaseMIBNotificationsPrefix 0 }


encaseChangeEvent NOTIFICATION-TYPE
    OBJECTS { 
            encaseHistAppName, 
            encaseHistConnectionMode, 
            encaseHistCreationTime, 
            encaseHistDeviceName, 
            encaseHistHostName, 
            encaseHistChangeMessage, 
            encaseHistUserName 
    }
    STATUS  current
    DESCRIPTION
        "The agent generates this notification when an application 
        identified by encaseHistAppName creates an ENCASE change event."
    ::= { ciscoEncaseMIBNotifications 1 }


-- conformance
ciscoEncaseMIBConformance OBJECT IDENTIFIER ::= 
        { ciscoEncaseMIB 3 }

ciscoEncaseMIBCompliances OBJECT IDENTIFIER ::= 
        { ciscoEncaseMIBConformance 1 }

ciscoEncaseMIBGroups OBJECT IDENTIFIER ::= 
        { ciscoEncaseMIBConformance 2 }


-- compliance
ciscoEncaseMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for entities which implement the 
        CISCO-ENCASE-MIB."

    MODULE  -- This module
        MANDATORY-GROUPS { 
            ciscoEncaseGroup,
            ciscoEncaseFilterGroup,
            ciscoEncaseNotificationsGroup
        }

    OBJECT      encaseHistTableMaxLength
    SYNTAX      Integer32 (0..1)
    DESCRIPTION
        "It is allowable to implement the history table with only
        one entry."     

    ::= { ciscoEncaseMIBCompliances 1 }


-- Units of conformance
ciscoEncaseGroup OBJECT-GROUP
    OBJECTS {
        encaseHistTableMaxLength,
        encaseHistIndexLast,
        encaseHistAppName,
        encaseHistConnectionMode,
        encaseHistCreationTime,
        encaseHistDeviceName,
        encaseHistHostName,
        encaseHistChangeMessage,
        encaseHistUserName 
    }
    STATUS  current
    DESCRIPTION 
        "A collection of objects that define the change event logging."
    ::= { ciscoEncaseMIBGroups 1 }

ciscoEncaseFilterGroup OBJECT-GROUP
    OBJECTS {
        encaseNotifiesEnabled
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects that controls the generation of all
        notifications."
    ::= { ciscoEncaseMIBGroups 2 }


ciscoEncaseNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        encaseChangeEvent
    }
    STATUS  current
    DESCRIPTION
        "The notifications generated by ENCASE."
    ::= { ciscoEncaseMIBGroups 3 }

END